/*
* 包含n哥操作数据库集合的model模块*/
/*1. 连接数据库
1.1. 引入 mongoose
1.2. 连接指定数据库(URL 只有数据库是变化的)
1.3. 获取连接对象
1.4. 绑定连接完成的监听(用来提示连接成功)
2. 定义出对应特定集合的 Model 并向外暴露
2.1. 字义 Schema(描述文档结构)
2.2. 定义 Model(与集合对应, 可以操作集合)
2.3. 向外暴露 Model */


//1.1. 引入 mongoose
const mongoose = require('./db')

//2. 定义出对应特定集合的 Model 并向外暴露
//2.1. 字义 Schema(描述文档结构)
const passageSchema = new  mongoose.Schema({
    //数据表的本身创建的时候会产生id作为文章的id，这里就不用创建id了
    //passageID:{type:String,require:true},//文章的ID
    create_time:{type:Number,require:true}, //创建时间
    visited:{type:Number},//文章的访问量
    title:{type:String,require:true},//文章标题
    stars:{type:Number,require:true},//文章的关注数
    info:{type:String,require:true},//文章的摘要
    context:{type:String,require:true},//文章的内容
    //功能拓展
    categoryID:{type:mongoose.Schema.Types.ObjectId,require:true},//文章所属的分类
    tags:{type:Array,require:true},//文章的标签
    update_time: {type:Number,require:true} ,//文章的更新时间
    comments: {type:Array,require:true}, // 文章的评论
    authorID: {type:String,require:true}, // 作者ID
    authorName: {type:String,require:true}, // 作者名字
    isAuthor: {type:Boolean,require:true}, // 是否授权发布
    
})
//2.2. 定义 Model(与集合对应, 可以操作集合)
/*  const PassageModel = mongoose.model('passage',passageSchema,'passages') */


//     //创建usermodel的实例
//     const PassageModelone =new PassageModel(passage)
//     //调用save保存
//     PassageModelone.save(function (error,user) {
//         console.log('save()',error,user)
//     })
// }
// testSave()
//删库 不跑路哦
/* 
PassageModel.remove(function(error,user){
    console.log(error,user)
}) */
//2.3. 向外暴露 Model
module.exports = mongoose.model('passage',passageSchema,'passages');
// const PassageModel = module.exports = mongoose.model('passage',passageSchema,'passages')



//测试数据
// function testSave(){
//     const passage = {
//         passageID:'1',
//         create_time:new Date(),
//         visited:300,
//         stars:120,
//         title:'跟着向全栈方向发展',
//         info:'课程用基于node.js的express框架，小白上手就会，简单易学，照葫芦画瓢。相比于直接学egg框架要容易上手很多，节省时间，用更多的时间梳理业务逻辑，提升开发的效率，还在等什么，快来学习啦！！',
//         context: '# P01:课程介绍和环境搭建\n' +
//         '[ **M** ] arkdown + E [ **ditor** ] = **Mditor**  \n' +
//         '> Mditor 是一个简洁、易于集成、方便扩展、期望舒服的编写 markdown 的编辑器，仅此而已... \n\n' +
//         '**这是加粗的文字**\n\n' +
//         '*这是倾斜的文字*`\n\n' +
//         '***这是斜体加粗的文字***\n\n' +
//         '~~这是加删除线的文字~~ \n\n' +
//         '\`console.log(111)\` \n\n' +
//         '# p02:来个Hello World 初始Vue3.0\n' +
//         '> aaaaaaaaa\n' +
//         '>> bbbbbbbbb\n' +
//         '>>> cccccccccc\n' +
//         '***\n\n\n' +
//         '# p03:Vue3.0基础知识讲解\n' +
//         '> aaaaaaaaa\n' +
//         '>> bbbbbbbbb\n' +
//         '>>> cccccccccc\n\n' +
//         '# p04:Vue3.0基础知识讲解\n' +
//         '> aaaaaaaaa\n' +
//         '>> bbbbbbbbb\n' +
//         '>>> cccccccccc\n\n' +
//         '#5 p05:Vue3.0基础知识讲解\n' +
//         '> aaaaaaaaa\n' +
//         '>> bbbbbbbbb\n' +
//         '>>> cccccccccc\n\n' +
//         '# p06:Vue3.0基础知识讲解\n' +
//         '> aaaaaaaaa\n' +
//         '>> bbbbbbbbb\n' +
//         '>>> cccccccccc\n\n' +
//         '# p07:Vue3.0基础知识讲解\n' +
//         '> aaaaaaaaa\n' +
//         '>> bbbbbbbbb\n' +
//         '>>> cccccccccc\n\n' +
//         '``` var a=11; ```'+
//         '# p03:Vue3.0基础知识讲解\n' +
//         '> aaaaaaaaa\n' +
//         '>> bbbbbbbbb\n' +
//         '>>> cccccccccc\n\n' +
//         '# p04:Vue3.0基础知识讲解\n' +
//         '> aaaaaaaaa\n' +
//         '>> bbbbbbbbb\n' +
//         '>>> cccccccccc\n\n' +
//         '#5 p05:Vue3.0基础知识讲解\n' +
//         '> aaaaaaaaa\n' +
//         '>> bbbbbbbbb\n' +
//         '>>> cccccccccc\n\n' +
//         '# p06:Vue3.0基础知识讲解\n' +
//         '> aaaaaaaaa\n' +
//         '>> bbbbbbbbb\n' +
//         '>>> cccccccccc\n\n' +
//         '# p07:Vue3.0基础知识讲解\n' +
//         '> aaaaaaaaa\n' +
//         '>> bbbbbbbbb\n' +
//         '>>> cccccccccc\n\n' +
//         '``` var a=11; ```'
    
//     }

